﻿using UnityEngine;
using System.Threading.Tasks;
using System.Threading;

public class BlockMainThreadExample : MonoBehaviour
{
    void Start()
    {
        // 调用同步方法阻塞主线程2秒
        BlockMainThreadFor2Seconds();
        Debug.Log("主线程恢复！");
    }

    void BlockMainThreadFor2Seconds()
    {
        // 在后台线程执行耗时操作，并阻塞主线程等待
        Task.Run(() => 
        {
            // 注意：此处不能调用任何Unity API！
            Thread.Sleep(5000); // 后台线程阻塞x秒
        }).Wait(); // 主线程在此等待任务完成 阻塞!
    }
    void Update()
    {
        Debug.Log("Update" );
    }
}